package com.enjoy.list;


import org.junit.Test;

public class StringTest {
    public static void main(String[] args) {
        String s = "犯得上发射点";
        char[] chars = s.toCharArray();
        System.out.println("chars = " + chars.length);
        for (int i = 0; i < chars.length; i++) {
            System.out.println("chars[" + i + "] = " + (int) chars[i]);
        }
    }
    @Test
    public void test1(){
        // 创建了几个对象？
        // 如果是第一次执行创建了两个对象，一个是字符串常量引用指向的对象，一个是new出来的对象
        // 如果不是第一次执行，那么就只会创建new出来的对象
        String str = new String("hollis");
        String s = "hollis";
        System.out.println(s == str);
    }

    @Test
    public void test2(){
        String a = "ab";
        String b = "a" + "b";
        // true
        // 在Java中，对于字符串使用==比较的是字符串对象的引用地址是否相同
        // 因为a和b都是由字面量组成的字符串，它们的引用地址在编译时就已经确定了，并且在编译后，会把字面量直接合在一起
        System.out.println(a == b);
    }
}
